package memento.improve;

import java.util.HashMap;

public class Caretaker {
    //如果希望保存多个originator对象的不同时间的状态
    private final HashMap<String, HashMap<String, Memento>> mementos = new HashMap<>();

    /**
     * 添加备忘录
     * @param originatorId      角色
     * @param mementoId         当前时间
     * @param memento           当前状态
     */
    public void addMemento(String originatorId, String mementoId, Memento memento) {
        // 根据角色查询对应的集合，如果存在就返回，不存在就创建一个新的集合
        HashMap<String, Memento> originatorMementos = mementos.getOrDefault(originatorId, new HashMap<>());
        originatorMementos.put(mementoId, memento);
        mementos.put(originatorId, originatorMementos);
    }

    // 获取备忘录
    public Memento getMemento(String originatorId, String mementoId) {
        HashMap<String, Memento> originatorMementos = mementos.get(originatorId);
        if (originatorMementos == null) {
            return null;
        }
        return originatorMementos.get(mementoId);
    }
}
